
/**
 *  Die Klasse Raum ist eine abstrakte Klasse mit den ExternerRaum und InternerRaum. Sie enthält alle wesentlichen Informationen zu den 
 *  Räumen: Name, Raumtyp, Ausstattung, maximale Anzahl der Teilnehmer.
 * 
 * 
 * @author Bianca Brückner
 * @version 15122014
 */
public abstract class Raum
{
  
    /**
    * Raum Typ
     */
    protected RaumType raumType;
    
    /**
    * Name des Raums
     */
    
    protected String name;
    
    /**
    * Ausstattung der Lehrveranstaltung
     */
  
    protected Equipment equipment;
    
    /**
    * Anzahl maximaler Teilnehmer
     */
    
    public int maxTeilnehmer;
    
    
    /**
     * Die Konstruktormethode weißt dem Raum-Objekt alle grundlegenden Informationen zu.
     * 
     * @param raumType weißt den Typ des Raums über das entsprechende Enum zu.
     * @param name Name des Raum
     * @param equipment Equipement Objekt welches das entsprechende Equipement zum Raum aufweißt.
     * @param maxTeilnehmer Anzahl maximaler Teilnehmer.
     */
    
    public Raum(RaumType raumType, String name, Equipment equipment, int maxTeilnehmer) {
        this.raumType = raumType;
        this.name = name;
        this.equipment = equipment;
        this.maxTeilnehmer = maxTeilnehmer;
    }

    /**
    * @return liefert das RaumTyp Enum zurück.
    */
    public RaumType getRaumType() {
        return raumType;
    }

    /**
    * @param raumType Änderung des Raumtyps.
    */
    public void setRaumType(RaumType raumType) {
        this.raumType = raumType;
    }

    /**
    * @return Name des Raums.
    */
    public String getName() {
        return name;
    }

    
    /**
    * @param name Setzt den Namen des Raums.
    */
    public void setName(String name) {
        this.name = name;
    }

    /**
    * @return Liefert das Equipment Objekt zurück. Dieses enthält das entsprechende Equipement des Raums.
    */
    public Equipment getEquipment() {
        return equipment;
    }

    /**
    * @param equipement Setzt ein neues Equipement Objekt.
    */
    public void setEquipment(Equipment equipment) {
        this.equipment = equipment;
    }

    /**
    * @return Liefert die Anzahl der maximalen Teilnehmer zum Raum zurück.
    */
    public int getMaxTeilnehmer() {
        return maxTeilnehmer;
    }

    /**
    * @param maxTeilnehmer Setzt die Anzahl der maximalen Teilnehmer des Raums
    */
    public void setMaxTeilnehmer(int maxTeilnehmer) {
        this.maxTeilnehmer = maxTeilnehmer;
    }
    
    
    
    
    
    
}
